<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Structured Query Language</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Structured_Query_Language"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Structured_Query_Language rootpage-Structured_Query_Language skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span lang="en">Structured Query Language</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><p class="mw-empty-elt">
</p>
<table class="infobox_v2 infobox infobox--frwiki noarchive">
<tbody><tr>
<td colspan="2" class="entete informatique" style="background-color:#EEEEEE;color:black;">SQL<style data-mw-deduplicate="TemplateStyles:r228712691">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .entete.informatique{background-image:url("./_mw_/Picto.nfo.png")}
/* end https://fr.wikipedia.org/ */
</style>
</td></tr>
<tr><td colspan="3" style="text-align:center; line-height: 1.5em;"> </td></tr>
<tr>
<td colspan="3" style="text-align:center; line-height: 1.5em;"> </td></tr>
<tr>
<td colspan="2"><hr style="height:2px; color:inherit; background-color:#EEEEEE;"></td></tr>
<tr>
<th scope="row">Date de première version
</th>
<td>1974
</td>
</tr>
<tr>
<th scope="row"><a href="Paradigme_(programmation)" title="Paradigme (programmation)">Paradigme</a>
</th>
<td><a href="Programmation_d%C3%A9clarative" title="Programmation déclarative">déclaratif</a>, <a href="Programmation_proc%C3%A9durale" title="Programmation procédurale">procédural</a>, <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">orienté objet</a>
</td>
</tr>
<tr>
<th scope="row">Auteur
</th>
<td><a href="Donald_D._Chamberlin" title="Donald D. Chamberlin">Donald D. Chamberlin</a> et <a href="Raymond_F._Boyce" title="Raymond F. Boyce">Raymond F. Boyce</a>
</td>
</tr>
<tr>
<th scope="row">Développeur
</th>
<td><a href="IBM" title="IBM">IBM</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Version_d'un_logiciel" title="Version d'un logiciel">Dernière version</a>
</th>
<td>SQL:2016 (2016)
</td>
</tr>
<tr>
<th scope="row">Typage
</th>
<td><a href="Typage_statique" title="Typage statique">statique</a> et <a href="Typage_fort" title="Typage fort">fort</a>
</td>
</tr>
<tr>
<th scope="row">Dialectes
</th>
<td>SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016
</td>
</tr>
<tr>
<th scope="row">Influencé par
</th>
<td><span class="wd_p737"><a href="Datalog" title="Datalog">Datalog</a><br><a href="Calcul_des_pr%C3%A9dicats" title="Calcul des prédicats">Logique du premier ordre</a></span>
</td>
</tr>
<tr>
<th scope="row">A influencé
</th>
<td>CQL <a href="https://de.wikipedia.org/wiki/Contextual_Query_Language" class="extiw external" title="de:Contextual Query Language"><span class="indicateur-langue" title="Article en allemand : « Contextual Query Language »">(de)</span></a>, <a href="Language_Integrated_Query" title="Language Integrated Query">LINQ</a>, <a href="Windows_PowerShell" title="Windows PowerShell">Windows PowerShell</a>
</td>
</tr>
<tr>
<th scope="row">Implémentations
</th>
<td><a href="Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es#Quelques_SGBD" title="Système de gestion de base de données">nombreuses</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">Système d'exploitation</a>
</th>
<td><a href="Logiciel_multiplate-forme" class="mw-redirect" title="Logiciel multiplate-forme">Multiplate-forme</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Site_web" title="Site web">Site web</a>
</th>
<td><span class="wd_p856"><a rel="nofollow" class="external text" href="https://www.iso.org/standard/76583.html">www.iso.org/standard/76583.html</a></span>
</td>
</tr>
<tr>
<th scope="row"><a href="Extension_de_nom_de_fichier" title="Extension de nom de fichier">Extension de fichier</a>
</th>
<td><span class="wd_p1195">sql</span>
</td>
</tr>
<tr>
</tr>
</tbody></table>
<div class="infobox_v3 infobox infobox--frwiki noarchive large"><div class="entete icon informatique" style="background-color:#C0C0C0"><div>SQL</div></div><div><div class="images" style="padding:2px 0"></div></div><div><div class="images" style="padding:2px 0"></div></div><table><caption style="text-align:center;background-color:#C0C0C0">Caractéristiques</caption><tbody><tr class=""><th scope="row"><a href="Extension_de_nom_de_fichier" title="Extension de nom de fichier">Extension</a></th><td class=""><div>
<span class="wd_p1195"><code>.sql</code></span></div></td></tr><tr class=""><th scope="row"><a href="Type_de_m%C3%A9dias" title="Type de médias">Type MIME</a></th><td class=""><div>
<span class="wd_p1163"><code> application/x-sql</code>, <code> application/sql</code></span></div></td></tr><tr class=""><th scope="row">Développé par</th><td class=""><div>
<a href="ISO" class="mw-redirect" title="ISO">ISO</a>/<a href="Commission_%C3%A9lectrotechnique_internationale" title="Commission électrotechnique internationale">CEI</a></div></td></tr><tr class=""><th scope="row">Version initiale</th><td class=""><div>
<span class="wd_p577"><time datetime="1986" data-sort-value="1986" class="date-lien"><a href="1986" title="1986">1986</a></time>, <time datetime="1974" data-sort-value="1974" class="date-lien"><a href="1974" title="1974">1974</a></time></span></div></td></tr><tr class=""><th scope="row">Type de format</th><td class=""><div>
Base de données</div></td></tr><tr class=""><th scope="row">Basé sur</th><td class=""><div>
<span class="wd_p144"><a href="Calcul_des_pr%C3%A9dicats" title="Calcul des prédicats">Logique du premier ordre</a></span></div></td></tr><tr class=""><th scope="row">Norme</th><td class=""><div>
ISO/CEI 9075</div></td></tr><tr class=""><th scope="row">Site web</th><td class=""><div>
<span class="wd_p856"><a rel="nofollow" class="external text" href="https://www.iso.org/standard/76583.html">www.iso.org/standard/76583.html</a></span></div></td></tr></tbody></table></div>
<p><b>SQL</b> (sigle pour <i><span class="lang-en" lang="en">Structured Query Language</span></i>, « langage de requêtes structurées ») est un <a href="Langage_informatique" title="Langage informatique">langage informatique</a> normalisé servant à exploiter des <a href="Base_de_donn%C3%A9es_relationnelle" title="Base de données relationnelle">bases de données relationnelles</a>. La partie <i>langage de manipulation des données</i> de SQL permet de rechercher, d'ajouter, de modifier ou de supprimer des données dans les bases de données relationnelles.
</p><p>Outre le langage de manipulation des données :
</p>
<ul><li>le <i>langage de définition des données</i> permet de créer et de modifier l'organisation des données dans la base de données,</li>
<li>le <i>langage de contrôle de transaction</i> permet de commencer et de terminer des <a href="Transaction_informatique" title="Transaction informatique">transactions</a>,</li>
<li>le <i>langage de contrôle des données</i> permet d'autoriser ou d'interdire l'accès à certaines données (<a href="Base_de_donn%C3%A9es" title="Base de données">base</a>, <a href="Table_(base_de_donn%C3%A9es)" title="Table (base de données)">table</a>, <a href="Enregistrement_(base_de_donn%C3%A9es)" title="Enregistrement (base de données)">enregistrement</a>) à certaines personnes.</li></ul>
<p>Créé en 1974, normalisé depuis 1986, le langage est reconnu par la grande majorité des <a href="Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es" title="Système de gestion de base de données">systèmes de gestion de bases de données relationnelles</a> (SGBDR) du marché.
</p><p>SQL fait partie de la même famille que les langages ALPHA (dont il est le descendant), SQUARE, QUEL (intégré à <a href="Ingres_(base_de_donn%C3%A9es)" title="Ingres (base de données)">Ingres</a>) ou QBE (Zloof). Il a été appelé SEQUEL à sa naissance, mais ce nom a été changé en SQL parce que SEQUEL était une marque déposée de l'<a href="Construction_a%C3%A9ronautique" title="Construction aéronautique">avionneur</a> <a href="Hawker_Siddeley" title="Hawker Siddeley">Hawker-Siddeley</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Historique">Historique</h2></div>
<p>En juin 1970, <a href="Edgar_Frank_Codd" title="Edgar Frank Codd">Edgar Frank Codd</a> publia l'article <i><span class="lang-en" lang="en">A Relational Model of Data for Large Shared Data Banks</span></i> (« Un référentiel de données relationnel pour de grandes banques de données partagées ») dans la revue <i><span class="lang-en" lang="en">Communications of the ACM</span></i> (<i><span class="lang-en" lang="en"><a href="Association_for_Computing_Machinery" title="Association for Computing Machinery">Association for Computing Machinery</a></span></i>). Ce référentiel <a href="Mod%C3%A8le_relationnel" title="Modèle relationnel">relationnel</a> fondé sur la <a href="Calcul_des_pr%C3%A9dicats" title="Calcul des prédicats">logique des prédicats du premier ordre</a> a été rapidement reconnu comme un modèle théorique intéressant, pour l'interrogation des <a href="Base_de_donn%C3%A9es" title="Base de données">bases de données</a>, et a inspiré le développement du langage <i><span class="lang-en" lang="en">Structured English QUEry Language</span></i> (<i>SEQUEL</i>) (« langage d'interrogation structuré en anglais »), renommé ultérieurement SQL pour cause de conflit de <a href="Droit_des_marques" title="Droit des marques">marque déposée</a>.
</p><p>Développée chez <a href="IBM" title="IBM">IBM</a> en 1970 par <a href="Donald_D._Chamberlin" title="Donald D. Chamberlin">Donald Chamberlin</a> et <a href="Raymond_F._Boyce" title="Raymond F. Boyce">Raymond Boyce</a>, cette première version a été conçue pour manipuler et éditer des données stockées dans la base de données relationnelle à l'aide du <a href="Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es" title="Système de gestion de base de données">système de gestion de base de données</a> <a href="IBM_System_R" title="IBM System R">IBM System R</a>. Le nom SEQUEL, qui était déposé commercialement par l'<a href="Construction_a%C3%A9ronautique" title="Construction aéronautique">avionneur</a> <a href="Hawker_Siddeley" title="Hawker Siddeley">Hawker Siddeley</a> pour un système d'<a href="Cha%C3%AEne_d'acquisition" title="Chaîne d'acquisition">acquisition de données</a>, a été abandonné et contracté en SQL en 1975<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>. SQL était censé alors devenir un élément clé du futur <a href="Projet_Future_Systems" title="Projet Future Systems">projet FS</a>.
</p><p>En 1979, <i><span class="lang-en" lang="en">Relational Software, Inc.</span></i> (actuellement <i><span class="lang-en" lang="en"><a href="Oracle_(entreprise)" title="Oracle (entreprise)">Oracle Corporation</a></span></i>) présenta la première version commercialement disponible de SQL, rapidement imité par d'autres fournisseurs.
</p><p>SQL a été adopté comme recommandation par l'<a href="American_National_Standards_Institute" title="American National Standards Institute">Institut de normalisation américaine</a> (ANSI) en 1986, puis comme norme internationale par l'<a href="Organisation_internationale_de_normalisation" title="Organisation internationale de normalisation">ISO</a> en 1987 sous le nom de <i>ISO/CEI 9075 - Technologies de l'information - Langages de base de données - SQL</i><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>.
</p><p>La <a href="Norme_et_standard_techniques" title="Norme et standard techniques">norme</a> internationale SQL est passée par un certain nombre de révisions :
</p>
<table class="wikitable">
<tbody><tr>
<th>Année</th>
<th>Nom</th>
<th>Appellation</th>
<th>Commentaires
</th></tr>
<tr>
<td>1986</td>
<td>ISO/CEI 9075:1986</td>
<td>SQL-86 ou SQL-87</td>
<td>Édité par l'<a href="American_National_Standards_Institute" title="American National Standards Institute">ANSI</a> puis adopté par l'ISO en 1987.
</td></tr>
<tr>
<td>1989</td>
<td>ISO/CEI 9075:1989</td>
<td>SQL-89 ou SQL-1</td>
<td>Révision mineure.
</td></tr>
<tr>
<td>1992</td>
<td>ISO/CEI 9075:1992</td>
<td>SQL-92 <a href="https://en.wikipedia.org/wiki/SQL-92" class="extiw external" title="en:SQL-92"><span class="indicateur-langue" title="Article en anglais : « SQL-92 »">(en)</span></a> alias SQL2</td>
<td>Révision majeure.
</td></tr>
<tr>
<td>1999</td>
<td>ISO/CEI 9075:1999</td>
<td>SQL-99 alias SQL3</td>
<td><a href="Expression_r%C3%A9guli%C3%A8re" title="Expression régulière">Expressions rationnelles</a>, requêtes <a href="R%C3%A9cursivit%C3%A9" title="Récursivité">récursives</a>, déclencheurs, types non-scalaires et quelques fonctions <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">orientées objet</a> (les deux derniers points sont quelque peu controversés et pas encore largement implémentés).
</td></tr>
<tr>
<td>2003</td>
<td>ISO/CEI 9075:2003</td>
<td>SQL:2003 <a href="https://en.wikipedia.org/wiki/SQL:2003" class="extiw external" title="en:SQL:2003"><span class="indicateur-langue" title="Article en anglais : « SQL:2003 »">(en)</span></a></td>
<td>Introduction de fonctions pour la manipulation <a href="Extensible_Markup_Language" title="Extensible Markup Language">XML</a>, « window functions », ordres standardisés et colonnes avec valeurs auto-produites (y compris colonnes d'identité).
</td></tr>
<tr>
<td>2008</td>
<td>ISO/CEI 9075:2008</td>
<td><a href="SQL%3A2008" title="SQL:2008">SQL:2008</a></td>
<td>Ajout de quelques fonctions de fenêtrage (ntile, lead, lag, first value, last value, nth value), limitation du nombre de lignes (OFFSET / FETCH), amélioration mineure sur les types distincts, curseurs et mécanismes d'auto-incrémentation.
</td></tr>
<tr>
<td>2011</td>
<td>ISO/CEI 9075:2011</td>
<td><a href="SQL%3A2011" title="SQL:2011">SQL:2011</a></td>
<td>Ajout du support des <a href="Base_de_donn%C3%A9es_temporelle" title="Base de données temporelle">tables temporelles</a> (historisation automatique).
</td></tr>
<tr>
<td>2016
</td>
<td>ISO/IEC 9075:2016
</td>
<td>SQL:2016
</td>
<td>Ajout de la recherche de motifs de lignes, de fonctions de table <a href="Polymorphisme_(informatique)" title="Polymorphisme (informatique)">polymorphes</a>, d'opérations sur des données <a href="JavaScript_Object_Notation" title="JavaScript Object Notation">JSON</a> stockées dans des champs de type chaîne de caractères.
</td></tr>
<tr>
<td>2019
</td>
<td>ISO/IEC 9075-15:2019
</td>
<td>SQL:2019
</td>
<td>Ajout de la partie 15, tableaux multidimensionnels (type MDarray et opérateurs)
</td></tr>
<tr>
<td>2023
</td>
<td>ISO/IEC 9075:2023
</td>
<td>SQL:2023
</td>
<td>Ajoute le type de données JSON (SQL/Fondation) ; Ajoute la Partie 16, Requêtes sur les graphes de propriétés (SQL/PGQ)
</td></tr></tbody></table>
<p>Comme toute norme internationale publiée par l'ISO, ISO/CEI 9075 est disponible à l'achat sur le site de cette organisation<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>. Le dernier brouillon de la norme est disponible sur wiscorp.com<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Utilisation">Utilisation</h2></div>
<p>Le langage SQL s'utilise principalement de trois manières :
</p>
<ul><li>un programme écrit dans un <a href="Langage_de_programmation" title="Langage de programmation">langage de programmation</a> donné utilise l'<a href="Call_Level_Interface" title="Call Level Interface">interface de programmation</a> du <a href="Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es" title="Système de gestion de base de données">SGBD</a> pour lui transmettre des instructions en langage SQL. Ces programmes utilisent des composants logiciels tels que <a href="Open_Database_Connectivity" title="Open Database Connectivity">ODBC</a> ou <a href="Java_Database_Connectivity" title="Java Database Connectivity">JDBC</a>. Cette technique est utilisée par l'<a href="Interface_en_ligne_de_commande" title="Interface en ligne de commande">invite de commande</a> qui permet à un <a href="Administrateur_de_base_de_donn%C3%A9es" title="Administrateur de base de données">administrateur</a> d'effectuer des opérations sur les bases de données, opérations qu'il décrit en SQL ;</li>
<li>technique dite <i>embedded SQL</i> : des instructions en langage SQL sont incorporées dans le <a href="Code_source" title="Code source">code source</a> d'un programme écrit dans un autre langage ;</li>
<li>technique des <a href="Proc%C3%A9dure_stock%C3%A9e" title="Procédure stockée">procédures stockées</a> : des <a href="Routine_(informatique)" title="Routine (informatique)">fonctions</a> écrites dans un langage procédural propre à chaque SGBD (<a href="PL/SQL" title="PL/SQL">PL/SQL</a> pour <a href="Oracle_Database" title="Oracle Database">Oracle</a>, SQL/PSM pour <a href="MySQL" title="MySQL">MySQL</a> ...) sont enregistrées dans la base de données en vue d'être exécutées par le SGBD. Cette technique est aussi utilisée pour les <a href="D%C3%A9clencheur" title="Déclencheur">triggers</a> - procédures déclenchées automatiquement sur modification du contenu de la base de données.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Syntaxe_générale"><span id="Syntaxe_g.C3.A9n.C3.A9rale"></span>Syntaxe générale</h2></div>
<p>Les instructions SQL s'écrivent d'une manière qui ressemble à celle de phrases ordinaires en anglais. Cette ressemblance voulue vise à faciliter l'apprentissage et la lecture<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>.
</p><p>C'est un <a href="Programmation_d%C3%A9clarative" title="Programmation déclarative">langage déclaratif</a> c'est-à-dire qu'il permet de décrire le résultat escompté, sans décrire la manière de l'obtenir. Les SGBD sont équipés d'<a href="Optimisation_de_requ%C3%AAte" title="Optimisation de requête">optimiseurs de requêtes</a> - des mécanismes qui déterminent automatiquement la manière <a href="Optimisation_de_code" title="Optimisation de code">optimale</a> d'effectuer les opérations, notamment par une estimation de la <a href="Th%C3%A9orie_de_la_complexit%C3%A9_(informatique_th%C3%A9orique)" title="Théorie de la complexité (informatique théorique)">complexité algorithmique</a>. Celle-ci est fondée sur des <a href="Statistique" title="Statistique">statistiques</a> récoltées à partir des données contenues dans la base de données (nombre d'<a href="Enregistrement_(base_de_donn%C3%A9es)" title="Enregistrement (base de données)">enregistrements</a>, nombre de valeurs distinctes dans une colonne, <abbr class="abbr" title="et cetera">etc.</abbr>).
</p><p>Les instructions SQL couvrent quatre domaines :
</p>
<ul><li><a href="Langage_de_d%C3%A9finition_de_donn%C3%A9es" title="Langage de définition de données">Langage de définition de données</a> ;</li>
<li><a href="Langage_de_manipulation_de_donn%C3%A9es" title="Langage de manipulation de données">Langage de manipulation de données</a> ;</li>
<li><a href="Langage_de_contr%C3%B4le_de_donn%C3%A9es" title="Langage de contrôle de données">Langage de contrôle de données</a> ;</li>
<li><a href="Langage_de_contr%C3%B4le_des_transactions" title="Langage de contrôle des transactions">Langage de contrôle des transactions</a>.</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Langage_de_manipulation_de_données"><span id="Langage_de_manipulation_de_donn.C3.A9es"></span>Langage de manipulation de données</h3></div>
<p>Les instructions de manipulation du contenu de la base de données commencent par les mots clés <i><a href="Select_(SQL)" title="Select (SQL)">SELECT</a></i>, <i><a href="Update_(SQL)" title="Update (SQL)">UPDATE</a></i>, <i><a href="Insert_(SQL)" title="Insert (SQL)">INSERT</a></i> ou <i><a href="Delete_(SQL)" title="Delete (SQL)">DELETE</a></i> qui correspondent respectivement aux opérations de recherche de contenu, modification, ajout et suppression.
</p><p>Divers autres <a href="Mot_cl%C3%A9" title="Mot clé">mots-clés</a> tels que <i>FROM</i>, <i>JOIN</i> et <i>GROUP BY</i> permettent d'indiquer les opérations d'<a href="Alg%C3%A8bre_relationnelle" title="Algèbre relationnelle">algèbre relationnelle</a> à effectuer en vue d'obtenir le contenu à manipuler.
</p>
<div class="mw-heading mw-heading3"><h3 id="Langage_de_définition_de_données"><span id="Langage_de_d.C3.A9finition_de_donn.C3.A9es"></span>Langage de définition de données</h3></div>
<p>Les instructions de manipulation des <a href="M%C3%A9tadonn%C3%A9e" title="Métadonnée">métadonnées</a> - description de la structure, l'organisation et les caractéristiques de la base de données - commencent avec les mots-clés <i>CREATE</i>, <i>ALTER</i>, <i>DROP</i>, <i>RENAME</i>, <i>COMMENT</i> ou <i>TRUNCATE.</i>
</p><p>Celles-ci correspondent aux opérations d'ajouter, modifier, supprimer, renommer, commenter ou vider une métadonnée.
</p><p>Ces mots clés sont immédiatement suivis du type de métadonnée à manipuler - <i>TABLE</i>, <i>VIEW</i>, <i>INDEX</i>...
</p>
<div class="mw-heading mw-heading3"><h3 id="Langage_de_contrôle_de_données_et_langage_de_contrôle_des_transactions"><span id="Langage_de_contr.C3.B4le_de_donn.C3.A9es_et_langage_de_contr.C3.B4le_des_transactions"></span>Langage de contrôle de données et langage de contrôle des transactions</h3></div>
<p>Les mots clés <i>GRANT</i> et <i>REVOKE</i> permettent d'autoriser des opérations à certaines personnes, d'ajouter ou de supprimer des autorisations. Tandis que les mots clés <i>COMMIT</i> et <i>ROLLBACK</i> permettent de confirmer ou annuler l'exécution de <a href="Transaction_informatique" title="Transaction informatique">transactions</a>.
</p><p>La syntaxe de SQL fait l'objet de la <a href="Norme_et_standard_techniques" title="Norme et standard techniques">norme</a> <i>ISO 9075</i>. Cette norme laisse la possibilité aux producteurs de <a href="Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es" title="Système de gestion de base de données">SGBD</a> d'y ajouter des instructions spécifiques et non normalisées.
</p><p>La norme a évolué au cours des années en vue de s'adapter aux demandes. Ainsi, les <a href="%C3%89diteur_de_logiciel" title="Éditeur de logiciel">éditeurs</a> de SGBD ont souvent ajouté des possibilités à leurs produits, avant que celles-ci fassent objet de normes<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>. Cela provoque des variations dans la compréhension et l'interprétation qui est faite d'un <a href="Code_source" title="Code source">code source</a> en SQL par les différents logiciels de SGBD<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>.
</p><p>Ces différences font qu'un <a href="Code_source" title="Code source">code source</a> écrit sans précautions pour un SGBD donné ne fonctionnera pas forcément avec un autre SGBD.
</p>
<div class="mw-heading mw-heading3"><h3 id="Exemples_de_code">Exemples de code</h3></div>
<ul><li>Choix de la base</li></ul>
<p>SQL peut gérer, et gère en général, <i>plusieurs</i> bases de données. Il faut indiquer au départ avec laquelle on veut travailler par une instruction USE
</p>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="n">USE</span><span class="w"> </span><span class="n">mabase</span><span class="p">;</span>
</pre></div>
<ul><li>Recherche</li></ul>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">nom</span><span class="p">,</span><span class="w"> </span><span class="n">service</span>
<span class="k">FROM</span><span class="w"> </span><span class="n">employe</span>
<span class="k">WHERE</span><span class="w"> </span><span class="n">statut</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'stagiaire'</span>
<span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">nom</span><span class="p">;</span>
</pre></div>
<ul><li>procédure stockée</li></ul>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">DECLARE</span><span class="w"> </span><span class="n">N</span><span class="w"> </span><span class="nb">INTEGER</span><span class="p">;</span>
<span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">N</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="w"> </span><span class="k">FOR</span><span class="w"> </span><span class="k">C</span><span class="w"> </span>
<span class="w"> </span><span class="k">AS</span><span class="w"> </span><span class="n">C_USR_MISE_A_JOUR</span><span class="w"> </span>
<span class="w"> </span><span class="k">CURSOR</span><span class="w"> </span><span class="k">FOR</span><span class="w"> </span>
<span class="w"> </span><span class="k">SELECT</span><span class="w"> </span><span class="n">USR_ID</span><span class="p">,</span><span class="w"> </span><span class="n">USR_NOM</span>
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">T_UTILISATEUR_USR</span>
<span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">USR_ID</span>
<span class="w"> </span><span class="k">FOR</span><span class="w"> </span><span class="k">UPDATE</span><span class="w"> </span><span class="k">OF</span><span class="w"> </span><span class="n">USR_NOM</span>
<span class="w"> </span><span class="k">DO</span>
<span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">MOD</span><span class="p">(</span><span class="n">N</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="k">THEN</span>
<span class="w"> </span><span class="k">UPDATE</span><span class="w"> </span><span class="n">T_UTILISATEUR_USR</span>
<span class="p">...</span>
</pre></div>
<ul><li>Supprimer totalement une base de données et tout ce qu'elle contient :</li></ul>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">DROP</span><span class="w"> </span><span class="k">DATABASE</span><span class="w"> </span><span class="n">nom_base_de_donnees</span><span class="p">;</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Manipulation_de_données"><span id="Manipulation_de_donn.C3.A9es"></span>Manipulation de données</h2></div>
<p>Le <a href="Langage_de_manipulation_de_donn%C3%A9es" title="Langage de manipulation de données">Langage de manipulation de données</a> LMD (<i><span class="lang-en" lang="en">Data Manipulation Language</span></i>, DML, en anglais) est un sous-ensemble du SQL utilisé pour ajouter, modifier et supprimer des données :
</p>
<ul><li><code><a href="Insert_(SQL)" title="Insert (SQL)">INSERT</a></code> insère des <a href="Uplet" title="Uplet">n-uplets</a> (informellement appelés lignes et appelés <i><a href="Uplet" title="Uplet">tuples</a></i> en anglais) dans une table existante. Par exemple :</li></ul>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">a_table</span><span class="w"> </span><span class="p">(</span><span class="n">field1</span><span class="p">,</span><span class="w"> </span><span class="n">field2</span><span class="p">,</span><span class="w"> </span><span class="n">field3</span><span class="p">)</span>
<span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">'test'</span><span class="p">,</span><span class="w"> </span><span class="s1">'N'</span><span class="p">,</span><span class="w"> </span><span class="k">NULL</span><span class="p">);</span>
</pre></div>
<ul><li><code><a href="Update_(SQL)" title="Update (SQL)">UPDATE</a></code> Modifie un ensemble de n-uplets existant dans une table. Par exemple :</li></ul>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">UPDATE</span><span class="w"> </span><span class="n">a_table</span>
<span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">field1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'updated value'</span>
<span class="k">WHERE</span><span class="w"> </span><span class="n">field2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'N'</span><span class="p">;</span>
</pre></div>
<ul><li><code><a href="Delete_(SQL)" title="Delete (SQL)">DELETE</a></code> Supprime un ensemble de n-uplets existant dans une table. Par exemple :</li></ul>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="k">DELETE</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">a_table</span>
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">field2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'N'</span><span class="p">;</span>
</pre></div>
<ul><li><code><a href="Merge_(SQL)" title="Merge (SQL)">MERGE</a></code> Combine les données de plusieurs tables. C'est la combinaison de <code><a href="Insert_(SQL)" title="Insert (SQL)">INSERT</a></code> et <code>UPDATE</code>. Il peut être nommé <code>UPSERT</code>, <code>INSERT OR REPLACE INTO</code>, ou encore <code>INSERT ON DUPLICATE KEY UPDATE</code> dans certains moteurs de base de données.</li></ul>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="n">MERGE</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="k">table_name</span><span class="w"> </span><span class="k">USING</span><span class="w"> </span><span class="n">table_reference</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="p">(</span><span class="n">condition</span><span class="p">)</span>
<span class="w"> </span><span class="k">WHEN</span><span class="w"> </span><span class="n">MATCHED</span><span class="w"> </span><span class="k">THEN</span>
<span class="w"> </span><span class="k">UPDATE</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">column1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">value1</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="n">column2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">value2</span><span class="w"> </span><span class="p">...]</span>
<span class="w"> </span><span class="k">WHEN</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="n">MATCHED</span><span class="w"> </span><span class="k">THEN</span>
<span class="w"> </span><span class="k">INSERT</span><span class="w"> </span><span class="p">(</span><span class="n">column1</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="n">column2</span><span class="w"> </span><span class="p">...])</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="n">value1</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="n">value2</span><span class="w"> </span><span class="p">...</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="NULL_et_la_logique_ternaire">NULL et la logique ternaire</h2></div>
<p>Le mot-clef <b>NULL</b> fut introduit dans SQL pour exprimer les informations manquantes dans le modèle relationnel. L'introduction de NULL, avec TRUE et FALSE est le fondement de la <a href="Logique_ternaire" title="Logique ternaire">logique ternaire</a>. NULL n'a pas de valeur en SQL (et n'est membre d'aucun type de données), c'est un mot-clé réservé, indiquant qu'une information est manquante. Par conséquent, la comparaison avec NULL, même avec NULL lui-même, ne peut ni être VRAI ni être FAUX, elle est obligatoirement inconnue et ne possède aucune valeur booléenne. En effet, NULL ne peut pas être considéré égal à NULL, puisque les deux informations manquantes, que ces deux NULL distincts représentent, peuvent s'avérer différentes. On dit généralement que NULL est un « marqueur ».
</p>
<div class="mw-heading mw-heading2"><h2 id="Langages_apparentés"><span id="Langages_apparent.C3.A9s"></span>Langages apparentés</h2></div>
<ul><li>Créé par extension de SQL, <a href="Transact-SQL" title="Transact-SQL">Transact-SQL</a> est un <a href="Langage_de_programmation" title="Langage de programmation">langage de programmation</a> des SGBD SQL Adaptive Server Anywhere (ASA), SQL Adaptive Server Enterprise (ASE), <a href="Sybase_IQ" title="Sybase IQ">Sybase IQ</a> de <a href="Sybase" title="Sybase">Sybase</a> ainsi que <a href="Microsoft_SQL_Server" title="Microsoft SQL Server">SQL Server</a> de <a href="Microsoft" title="Microsoft">Microsoft</a>.</li>
<li><a href="PL/SQL" title="PL/SQL">PL/SQL</a> est un <a href="Langage_de_programmation" title="Langage de programmation">langage de programmation</a> du SGBD <a href="Oracle_Database" title="Oracle Database">Oracle Database</a> de <a href="Oracle_(entreprise)" title="Oracle (entreprise)">Oracle Corporation</a>. <a href="PL/pgSQL" title="PL/pgSQL">PL/pgSQL</a> est un langage de programmation du SGBD <a href="PostgreSQL" title="PostgreSQL">PostgreSQL</a>. Ce sont des langages de <a href="Programmation_proc%C3%A9durale" title="Programmation procédurale">programmation procédurale</a> dans lesquels peuvent être ajoutées des instructions en langage SQL. Le <a href="Code_source" title="Code source">code source</a> écrit dans ce type de langage est <a href="Compilateur" title="Compilateur">compilé</a> par le SGBD, puis enregistré dans la base de données et exécuté au besoin.</li>
<li><a href="Object_Query_Language" title="Object Query Language">OQL</a> est un langage similaire à SQL, pour demander des opérations aux <a href="Base_de_donn%C3%A9es_orient%C3%A9e_objet" title="Base de données orientée objet">bases de données orientées objet</a> et obtenir les résultats sous forme d'<a href="Objet_(informatique)" title="Objet (informatique)">objets</a>. Le langage est normalisé par le <a href="Object_Data_Management_Group" title="Object Data Management Group">Object Data Management Group</a> - un <a href="Consortium" title="Consortium">consortium</a> d'industriels informatiques qui a cessé toute activité en 2001.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Dialectes_inspirés_par_SQL"><span id="Dialectes_inspir.C3.A9s_par_SQL"></span>Dialectes inspirés par SQL</h2></div>
<p>De nombreux dialectes ont été créés en s'inspirant de SQL. Par exemple :
</p>
<ul><li>par <a href="Salesforce" title="Salesforce">Salesforce</a>, le SOQL reprenant une partie de la syntaxe SQL mais gérant les jointures différemment (à partir des tables de relation) ;</li>
<li>par <a href="Apache_Hive" title="Apache Hive">Apache Hive</a>, le HiveQL ou HQL qui reprend le SQL et vise à s'en rapprocher le plus possible ;</li>
<li><a href="Snowflake_Inc." title="Snowflake Inc.">Snowflake</a> (DataWareHouse Cloud ou DataLake Cloud) présente le Snowflake SQL, qui est un sous-ensemble de SQL-99.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Langages_concurrents">Langages concurrents</h2></div>
<p>Parmi les autres langages de requêtes, citons les ancêtres de SQL comme QUEL (Query English Language) ou encore le langage QBE (Query By Example). Cependant le langage <a href="Query_by_Example" title="Query by Example">QBE</a>, très différent de SQL, est encore en vigueur dans les SGBDR de type « fichier » que sont <a href="Paradox_(base_de_donn%C3%A9es)" title="Paradox (base de données)">Paradox</a> (Ansa Software/Borland/Corel) ou <a href="Microsoft_Access" title="Microsoft Access">Microsoft Access</a> (base de données) de <a href="Microsoft" title="Microsoft">Microsoft</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Alternatives">Alternatives</h2></div>
<ul><li>Le langage <a href="Tutorial_D" title="Tutorial D">Tutorial D</a> est présenté comme étant plus cohérent et plus simple d'emploi par ses inventeurs. Il permet, de surcroît, pour alléger le libellé des requêtes, l'emploi d'une clause <b>WITH</b> inspirée du langage <a href="Pascal_(langage)" title="Pascal (langage)">Pascal</a>, bien que <b>WITH</b> ne contribue pas à faciliter la lecture du code.</li></ul>
<p>À noter que la technique du WITH a été en partie reprise dans la norme SQL:1999 pour réaliser des « <i><span class="lang-en" lang="en">Common Table Expression</span></i> » (CTE ou <i>Table d'Expression Partagées</i> en français), c'est-à-dire des vues non instanciées utilisables par la requête dans laquelle elles figurent, et ce afin de factoriser des expressions ou encore de permettre l'écriture de requêtes récursives de manière à résoudre élégamment des parcours d'arbres ou de graphes.
</p><p>Parmi les autres candidats, on compte :
</p>
<ul><li>BS12<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>, qui lui aussi s'est attaqué à ce problème de l'enchâssement et de la perte de <a href="Lisibilit%C3%A9_(programmation)" title="Lisibilité (programmation)">lisibilité</a> qu'il entraîne.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Systèmes_de_gestion_de_base_de_données_avec_SQL"><span id="Syst.C3.A8mes_de_gestion_de_base_de_donn.C3.A9es_avec_SQL"></span>Systèmes de gestion de base de données avec SQL</h2></div>
<table cellpadding="0" cellspacing="15">
<tbody><tr>
<td width="33%" valign="top">
<ul><li><a href="4e_Dimension_(langage)" title="4e Dimension (langage)"><abbr class="abbr" title="Quatrième">4<sup>e</sup></abbr> Dimension (4D)</a></li>
<li><a href="Microsoft_Access" title="Microsoft Access">Microsoft Access</a></li>
<li><a href="OOo_Base" class="mw-redirect" title="OOo Base">OpenOffice Base</a></li>
<li><a href="DBase" title="DBase">DBase</a></li>
<li><a href="DB2" class="mw-redirect" title="DB2">DB2</a></li>
<li><a href="Firebird_(SGBDR)" class="mw-redirect" title="Firebird (SGBDR)">Firebird</a> / <a href="InterBase" title="InterBase">Interbase</a></li>
<li><a href="Visual_FoxPro" title="Visual FoxPro">Visual FoxPro</a></li>
<li>HyperFileSQL <a href="https://es.wikipedia.org/wiki/HyperFile" class="extiw external" title="es:HyperFile"><span class="indicateur-langue" title="Article en espagnol : « HyperFile »">(es)</span></a></li>
<li><a href="Informix" title="Informix">Informix</a></li>
<li><a href="Ingres_(base_de_donn%C3%A9es)" title="Ingres (base de données)">Ingres</a></li>
<li><a href="InterBase" title="InterBase">Interbase</a></li></ul>
</td>
<td width="33%" valign="top">
<ul><li><a href="MariaDB" title="MariaDB">MariaDB</a></li>
<li><a href="MaxDB" title="MaxDB">MaxDB</a> (anciennement SAP db)</li>
<li><a href="Microsoft_SQL_Server" title="Microsoft SQL Server">Microsoft SQL Server</a></li>
<li><a href="Mimer" class="mw-redirect" title="Mimer">Mimer</a></li>
<li><a href="MySQL" title="MySQL">MySQL</a></li>
<li><a href="Oracle_Database" title="Oracle Database">Oracle</a></li>
<li><a href="Paradox_(base_de_donn%C3%A9es)" title="Paradox (base de données)">Paradox</a></li>
<li><a href="PostgreSQL" title="PostgreSQL">PostgreSQL</a></li></ul>
</td>
<td width="34%" valign="top">
<ul><li><a href="SQLite" title="SQLite">SQLite</a></li>
<li>SQL/MM</li>
<li><a href="Sybase" title="Sybase">Sybase</a></li>
<li><a href="Teradata" title="Teradata">Teradata</a></li>
<li>Vertica <a href="https://en.wikipedia.org/wiki/Vertica" class="extiw external" title="en:Vertica"><span class="indicateur-langue" title="Article en anglais : « Vertica »">(en)</span></a></li></ul>
</td></tr></tbody></table>
<p>Tous ces systèmes présentent certaines particularités. Il est d'ailleurs toujours intéressant de se référer au manuel de référence du SGBDR, lors de requêtes particulières ou complexes, ainsi que pour leur optimisation.
</p>
<div class="mw-heading mw-heading2"><h2 id="Enseignement">Enseignement</h2></div>
<p>L'apprentissage des requêtes de base en SQL fait partie du <a href="Programmes_scolaires" title="Programmes scolaires">programme</a> d'<a href="Informatique" title="Informatique">informatique</a> tronc commun des <a href="Classes_pr%C3%A9paratoires_scientifiques" title="Classes préparatoires scientifiques">classes préparatoires scientifiques</a> <a href="Classe_pr%C3%A9paratoire_math%C3%A9matiques_et_physique" title="Classe préparatoire mathématiques et physique">MP</a>, <a href="Classe_pr%C3%A9paratoire_physique_et_chimie" title="Classe préparatoire physique et chimie">PC</a>, <a href="Classe_pr%C3%A9paratoire_physique_et_sciences_de_l'ing%C3%A9nieur" title="Classe préparatoire physique et sciences de l'ingénieur">PSI</a> et <a href="Classe_pr%C3%A9paratoire_physique_et_technologie" title="Classe préparatoire physique et technologie">PT</a><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="references-small decimal" style=""><div class="mw-references-wrap"><ol class="references">
<li id="cite_note-wikidata-9e50af997802e5ad5fddb4b39a019e425d92b882-1"><span class="mw-cite-backlink"><a href="#cite_ref-wikidata-9e50af997802e5ad5fddb4b39a019e425d92b882_1-0">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://peter.eisentraut.org/blog/2023/06/01/sql-2023-is-out"><cite style="font-style:normal;"><span class="lang-en" lang="en">SQL:2023 is out</span></cite></a> », <time class="nowrap" datetime="2023-06-01" data-sort-value="2023-06-01"><abbr class="abbr" title="premier">1<sup>er</sup></abbr> juin 2023</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2023-06-26" data-sort-value="2023-06-26">26 juin 2023</time>)</small></span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.mcjones.org/System_R/SQL_Reunion_95/sqlr95-System.html#Index195">Interview de Donald Chamberlain</a>.</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a> </span><span class="reference-text"><span class="ouvrage" id="14:00-17:00"><span class="nom_auteur">14:00-17:00</span>, « <a rel="nofollow" class="external text" href="https://www.iso.org/cms/render/live/fr/sites/isoorg/contents/data/standard/05/36/53681.html"><cite style="font-style:normal;">ISO/IEC 9075-1:2011</cite></a> », sur <span class="italique">ISO</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2021-01-08" data-sort-value="2021-01-08">8 janvier 2021</time>)</small></span></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="http://www.iso.org"><cite style="font-style:normal;" lang="en">International Organization for Standardization</cite></a> », sur <span class="italique">ISO</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2020-09-11" data-sort-value="2020-09-11">11 septembre 2020</time>)</small></span>.</span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external free" href="http://www.wiscorp.com/sql_2003_standard.zip">http://www.wiscorp.com/sql_2003_standard.zip</a></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a> </span><span class="reference-text"><span class="ouvrage" id="SumathiEsakkirajan2007"><span class="ouvrage" id="S._SumathiS._Esakkirajan2007"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> S. <span class="nom_auteur">Sumathi</span> et S. <span class="nom_auteur">Esakkirajan</span>, <cite class="italique" lang="en">Fundamentals of Relational Database Management Systems</cite>, Berlin, Heidelberg, Springer-Verlag, <abbr class="abbr" title="collection">coll.</abbr> « Studies in computational intelligence » (<abbr class="abbr" title="numéro">n<sup>o</sup></abbr> 47), <time>2007</time> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">978-3-540-48399-1</span>, <a href="Online_Computer_Library_Center" title="Online Computer Library Center">OCLC</a> <span class=" noarchive nowrap"><a rel="nofollow" class="external text" href="https://worldcat.org/fr/title/300238984">300238984</a></span>, <a rel="nofollow" class="external text" href="https://books.google.fr/books?id=MQNtCQAAQBAJ&printsec=frontcover&hl=fr&source=gbs_ViewAPI&redir_esc=y#v=onepage&q&f=false">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Fundamentals+of+Relational+Database+Management+Systems&rft.place=Berlin%2C+Heidelberg&rft.pub=Springer-Verlag&rft.aulast=Sumathi&rft.aufirst=S.&rft.au=Esakkirajan%2C+S.&rft.date=2007&rft.isbn=978-3-540-48399-1&rft_id=info%3Aoclcnum%2F300238984&rft_id=https%3A%2F%2Fbooks.google.fr%2Fbooks%3Fid%3DMQNtCQAAQBAJ%26printsec%3Dfrontcover%26hl%3Dfr%26source%3Dgbs_ViewAPI%26redir_esc%3Dy%23v%3Donepage%26q%26f%3Dfalse&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AStructured+Query+Language"></span></span></span>.</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a> </span><span class="reference-text">Kevin E. Kline - Daniel Kline et Brand Hunt, <i><span class="lang-en" lang="en">SQL in a Nutshell</span></i>, <span class="lang-en" lang="en">O'Reilly Media, Inc.</span> - 2004 <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">978-0-596-00481-1</span>)</small>.</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <span class="ouvrage">« <a rel="nofollow" class="external text" href="http://troels.arvin.dk/db/rdbms/"><cite style="font-style:normal;">Comparison of the different SQL implementations</cite></a> »</span>.</span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://c2.com/cgi/wiki?BusinessSystemTwelve">BS12</a>.</span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2021">« <a rel="nofollow" class="external text" href="https://cache.media.education.gouv.fr/file/SPE1-MEN-MESRI-4-2-2021/27/2/spe774_annexe_1373272.pdf"><cite style="font-style:normal;">Bulletin officiel : programme d'informatique commune</cite></a> » <span class="skin-invert-image" typeof="mw:File"><span title="Accès libre au document"></span></span> <abbr class="abbr indicateur-format format-pdf" title="Document au format Portable Document Format (PDF) d'Adobe">[PDF]</abbr>, sur <span class="italique">Ministère de l'enseignement supérieur, de la recherche et de l'innovation</span>, <time class="nowrap" datetime="2021-02-11" data-sort-value="2021-02-11">11 février 2021</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-04-17" data-sort-value="2025-04-17">17 avril 2025</time>)</small></span>, <abbr class="abbr" title="pages">p.</abbr> <span class="nowrap">9-10</span></span>
</li>
</ol></div>
</div>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<style data-mw-deduplicate="TemplateStyles:r194021218">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .autres-projets>.titre{text-align:center;margin:0.2em 0}.mw-parser-output .autres-projets>ul{margin:0;padding:0}.mw-parser-output .autres-projets>ul>li{list-style:none;margin:0.2em 0;text-indent:0;padding-left:24px;min-height:20px;text-align:left;display:block}.mw-parser-output .autres-projets>ul>li>a{font-style:italic}@media(max-width:720px){.mw-parser-output .autres-projets{float:none}}
/* end https://fr.wikipedia.org/ */
</style>
<div class="mw-heading mw-heading2"><h2 id="Bibliographie">Bibliographie</h2></div>
<div class="mw-heading mw-heading3"><h3 id="En_français"><span id="En_fran.C3.A7ais"></span>En français</h3></div>
<ul><li><i>SQL</i> Synthèse de cours et exercices - <abbr class="abbr" title="Quatrième">4<sup>e</sup></abbr> édition (2 chapitres supplémentaires sur l'indexation et l'administration) - Frédéric Brouard, Christian Soutou, Rudi Bruchez - Pearson Education, 2012</li>
<li><i>Bases de données - de la modélisation au SQL</i> - Laurent Audibert - <a href="%C3%89ditions_Ellipses" title="Éditions Ellipses">Ellipses</a>, 2009</li>
<li><i>SQL</i> Synthèse de cours et exercices - <abbr class="abbr" title="Deuxième">2<sup>e</sup></abbr> édition - Frédéric Brouard, Christian Soutou, Rudi Bruchez - Pearson Education, 2008</li>
<li><i>SQL par l'exemple</i> - Antony Molinaro - O'Reilly, 2007</li>
<li><i>SQL en concentré</i> - Kevin Kline - O'Reilly, 2005</li>
<li><i>SQL pour les nuls</i> - Allen G. Taylor - First Interactive, 2001</li>
<li><i>SQL</i> développement - Frédéric Brouard - Campus Press, 2001</li>
<li><i>SQL2 - SQL3, Applications à Oracle</i> (<abbr class="abbr" title="Troisième">3<sup>e</sup></abbr> édition) - Pierre Delmal - De Boeck Université, 2001</li>
<li><i>SQL avancé</i> (<abbr class="abbr" title="Deuxième">2<sup>e</sup></abbr> édition) - Joe Celko - Vuibert, 2000</li></ul>
<div class="mw-heading mw-heading3"><h3 id="En_anglais">En anglais</h3></div>
<ul><li><i>The Art of SQL</i> - Stéphane Faroult - <a href="O'Reilly_Media" title="O'Reilly Media">O'Reilly</a>, 2006</li>
<li><i>Advanced SQL:1999</i> - Jim Melton - Morgan Kaufmann, 2003</li>
<li><i>SQL bible</i> - A. Kriegel, B. M. Trukhnov - John Wiley, 2003</li>
<li><i>SQL:1999, Understanding Relational Language Components</i> - Jim Melton, Alan R. Simon - Morgan Kauffman, 2002</li>
<li><i>SQL in a nutshell</i> - Kevin Kline, Daniel Kline - O'Reilly, 2001</li>
<li><i>SQL 3, Implementing the SQL Foundation Standard</i> - Paul Fortier - <a href="McGraw-Hill_Education" title="McGraw-Hill Education">McGraw-Hill</a>, 1999</li>
<li><i>SQL-99 complete really</i> - Peter Gulutzan, Trudy Pelzer - R&D Books, 1999</li>
<li><i>The Complete Reference SQL</i> - J. R. Groff, P. N. Weinberg - Osborne, 1999</li>
<li><i>A guide to the SQL standard</i> - Chris J. Date, Hugh Darwen - <a href="Addison-Wesley" title="Addison-Wesley">Addison Wesley</a> - USA, 1997</li>
<li><i>Understanding the new SQL</i> - Jim Melton, Alan R. Simon - Morgan Kaufmann, 1993</li></ul>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<ul><li><a href="NoSQL" title="NoSQL">NoSQL</a></li>
<li><a href="Base_de_donn%C3%A9es_relationnelle" title="Base de données relationnelle">Base de données relationnelle</a></li>
<li><a href="Forme_normale_(bases_de_donn%C3%A9es_relationnelles)" title="Forme normale (bases de données relationnelles)">Formes normales</a></li>
<li><a href="Pro*C" title="Pro*C">Pro*C</a></li>
<li><a href="Syst%C3%A8me_de_gestion_de_base_de_donn%C3%A9es" title="Système de gestion de base de données">Système de gestion de base de données</a></li>
<li><a href="Pick_(syst%C3%A8me_d'exploitation)" title="Pick (système d'exploitation)">Pick (système d'exploitation)</a></li>
<li><a href="Query_by_Example" title="Query by Example">Query by Example</a></li>
<li><a href="SAS_(langage)" title="SAS (langage)">SAS (langage)</a></li>
<li><a href="W3Schools" title="W3Schools">W3Schools</a> : site d'apprentissage de divers <a href="Langage_de_programmation" title="Langage de programmation">langages de programmation</a> dont SQL</li></ul>
<div class="navbox-container" style="clear:both;">
</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la programmation informatique</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail des bases de données</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-10-11" href="https://fr.wikipedia.org/wiki/?title=Structured_Query_Language&oldid=229682226">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>